1. Field
The present disclosure is directed to a method and apparatus for accessing context information. More particularly, the present disclosure is directed to accessing context information from a plurality of context sources.
2. Introduction
Presently, people can employ many different computing devices in their daily lives. Such computing devices can include mobile, stationary and embedded computers. Quite often applications on the devices do not operate with respect to a single location in a single context, as opposed to applications operating on isolated desktop computers. Rather the applications can operate with respect to activities occurring in a multitude of situations and locations including activities at offices, meeting rooms, homes, airports, hotels, classrooms, markets, buses, and other locations. Users of the devices can access their computing resources from wireless portable machines and also through stationary devices and computers connected to local area networks.
Context aware applications on the devices can be aware of the context in which they are run. A context-aware application can adapt its behavior to a changing environment. For example, context aware applications can adapt their operation according to the location of use, the collection of nearby people, the availability of hosts and accessible devices, changes to such things over time, and other context relevant situations. A device with these capabilities can examine the local environment context and react to changes to the environment. Aspects of context can include device location, proximity of other devices, other available resources, desired results, weather conditions, lighting, noise level, network connectivity, communication costs, communication bandwidth, social situations, as well as other context related factors.
Because context aware applications can access multiple resources in various situations, the applications may need to access local context resources on a corresponding device as well as remote context sources in a uniform way. A mechanism can be used to access data from remote context data sources and keep a repository of data source descriptions. Unfortunately, in such a mechanism, a new remote context source would typically need to be installed and registered in a local registry on a client device before it can be used. That installation and registration can waste memory resources at the client side. Additionally, there is presently no mechanism for dynamically adding new data sources to applications on a device. In many instances, new network sources are not discovered or made available to applications without reconfiguring or recompiling device software.
A context broker can provide a network addressable infrastructure service which permits providers to publish interface contracts and allows consumers to find services and use the published interfaces. Data is then transmitted directly from the provider to the consumer through a permanent connection. Unfortunately, a context broker does not optimize multiple requests from different consumers to a same provider. While a local context broker acts as a collector for the local data sources and application requests, the main analysis and reasoning tasks are performed remotely, which can be inefficient and can waste bandwidth resources. This is because broker discovery is time and resources consuming.
Furthermore, permanent, un-optimized, connections to remote resources, impact on costs and on usability of the connections to the resources. Additionally, current mechanisms do not optimize local storage on the device and do not optimize network bandwidth usage simultaneously.
Thus, there is a need for a method and apparatus for accessing context information.